# install.packages("behaviouR") # package ‘behaviouR’ is not available (for R version 4.0.2)
## need to install using devtools
# devtools::install_github("https://github.com/DenaJGibbon/behaviouR")
library(behaviouR)
# not sure if these are needed
#library(ggfortify)
library(ggplot2)
# install.packages("tuneR")
library(tuneR) # Warning: package ‘tuneR’ was built under R version 4.0.5## Warning: package 'tuneR' was built under R version 4.0.5
# install.packages("seewave")
library(seewave) # Warning: package ‘seewave’ was built under R version 4.0.5## Warning: package 'seewave' was built under R version 4.0.5
behariouR
Downloading GitHub repo DenaJGibbon/behaviouR@HEAD These packages have more recent versions available. It is recommended to update all of them. Which would you like to update?
1: All
2: CRAN packages only
3: None
4: utf8 (1.2.1 -> 1.2.2 ) [CRAN]
5: crayon (1.4.1 -> 1.5.1 ) [CRAN]
6: colorspace (2.0-1 -> 2.0-3 ) [CRAN]
7: cli (2.5.0 -> 3.2.0 ) [CRAN]
8: cpp11 (0.2.7 -> 0.4.2 ) [CRAN]
9: fansi (0.5.0 -> 1.0.3 ) [CRAN]
10: later (1.2.0 -> 1.3.0 ) [CRAN]
11: Rcpp (1.0.7 -> 1.0.8.3 ) [CRAN]
12: openssl (1.4.3 -> 2.0.0 ) [CRAN]
13: mime (0.10 -> 0.12 ) [CRAN]
14: curl (4.3.1 -> 4.3.2 ) [CRAN]
15: yaml (2.2.1 -> 2.3.5 ) [CRAN]
16: withr (2.4.2 -> 2.5.0 ) [CRAN]
17: isoband (0.2.4 -> 0.2.5 ) [CRAN]
18: pillar (1.6.1 -> 1.7.0 ) [CRAN]
19: tidyselect (1.1.0 -> 1.1.2 ) [CRAN]
20: lifecycle (1.0.0 -> 1.0.1 ) [CRAN]
21: glue (1.4.2 -> 1.6.2 ) [CRAN]
22: generics (0.1.0 -> 0.1.2 ) [CRAN]
23: R6 (2.5.0 -> 2.5.1 ) [CRAN]
24: data.table (1.13.4 -> 1.14.2 ) [CRAN]
25: crosstalk (1.1.1 -> 1.2.0 ) [CRAN]
26: rlang (b501cf763… -> 21ccd827f…) [GitHub] 27: tibble (3.1.2 -> 3.1.6 ) [CRAN]
28: vctrs (0.3.8 -> 0.4.0 ) [CRAN]
29: dplyr (1.0.6 -> 1.0.8 ) [CRAN]
30: tidyr (1.1.3 -> 1.2.0 ) [CRAN]
31: htmlwidgets (1.5.3 -> 1.5.4 ) [CRAN]
32: htmltools (7e64cd93c… -> 9490b627a…) [GitHub] 33: digest (0.6.27 -> 0.6.29 ) [CRAN]
34: magrittr (2.0.1 -> 2.0.3 ) [CRAN]
35: jsonlite (1.7.2 -> 1.8.0 ) [CRAN]
36: zoo (1.8-8 -> 1.8-9 ) [CRAN]
37: plyr (1.8.6 -> 1.8.7 ) [CRAN]
38: stringi (1.6.2 -> 1.7.6 ) [CRAN]
39: diffobj (0.3.2 -> 0.3.5 ) [CRAN]
40: rprojroot (2.0.2 -> 2.0.3 ) [CRAN]
41: waldo (0.2.5 -> 0.4.0 ) [CRAN]
42: processx (3.5.2 -> 3.5.3 ) [CRAN]
43: pkgload (1.2.1 -> 1.2.4 ) [CRAN]
44: evaluate (0.14 -> 0.15 ) [CRAN]
45: desc (1.3.0 -> 1.4.1 ) [CRAN]
46: brio (1.1.0 -> 1.1.3 ) [CRAN]
47: testthat (3.0.2 -> 3.1.3 ) [CRAN]
48: xfun (0.23 -> 0.30 ) [CRAN]
49: MatrixModels (0.4-1 -> 0.5-0 ) [CRAN]
50: SparseM (1.78 -> 1.81 ) [CRAN]
51: knitr (1.33 -> 1.38 ) [CRAN]
52: sp (1.4-5 -> 1.4-6 ) [CRAN]
53: RcppEigen (0.3.3.7.0 -> 0.3.3.9.1 ) [CRAN]
54: nloptr (1.2.2.2 -> 2.0.0 ) [CRAN]
55: lme4 (1.1-26 -> 1.1-28 ) [CRAN]
56: maptools (1.0-2 -> 1.1-3 ) [CRAN]
57: quantreg (5.75 -> 5.88 ) [CRAN]
58: pbkrtest (0.4-8.6 -> 0.5.1 ) [CRAN]
59: carData (3.0-4 -> 3.0-5 ) [CRAN]
60: backports (1.1.10 -> 1.4.1 ) [CRAN]
61: car (3.0-10 -> 3.0-12 ) [CRAN]
62: corrplot (0.84 -> 0.92 ) [CRAN]
63: broom (0.7.7 -> 0.7.12 ) [CRAN]
64: plotly (4.9.2.2 -> 4.10.0 ) [CRAN]
65: mvtnorm (1.1-1 -> 1.1-3 ) [CRAN]
66: cowplot (1.1.0 -> 1.1.1 ) [CRAN]
67: ggrepel (0.9.0 -> 0.9.1 ) [CRAN]
68: bayestestR (0.8.0 -> 0.11.5 ) [CRAN]
69: magick (2.7.2 -> 2.7.3 ) [CRAN]
70: bbmle (1.0.23.1 -> 1.0.24 )
folder <- getwd()if not already existing
dir.create(file.path("recordings"), showWarnings = FALSE)
dir.create(file.path("data"), showWarnings = FALSE)
dir.create(file.path("output"), showWarnings = FALSE)file_list <- Sys.glob('/Volumes/MyPassportForMac/Pictures/!!Nikon-Camera/Nikon-Coolpix-GPS/TestFolder-R-Map-Images/GoldstreamPark/*.wav')
file_list## [1] "/Volumes/MyPassportForMac/Pictures/!!Nikon-Camera/Nikon-Coolpix-GPS/TestFolder-R-Map-Images/GoldstreamPark/2022-02-23-GoldstreamPark-birdsong-AmericanDipper-DSCN0073-mp4.wav"
## [2] "/Volumes/MyPassportForMac/Pictures/!!Nikon-Camera/Nikon-Coolpix-GPS/TestFolder-R-Map-Images/GoldstreamPark/2022-02-23-GoldstreamPark-birdsong-PacificWren-chips-DSCN0171-mp4.wav"
## [3] "/Volumes/MyPassportForMac/Pictures/!!Nikon-Camera/Nikon-Coolpix-GPS/TestFolder-R-Map-Images/GoldstreamPark/DSCN1493-Dark-eyedJunco-2022-03-19-MtFinlayson.mp4.wav"
wav_files <- list.files("./recordings", pattern = "*.wav")
wav_files## [1] "2021-06-04-Eagle-EsquimaltLagoon-DSCN7446.MP4.wav"
## [2] "Anna's Hummingbird-69-2021-04-28-amplify.wav"
## [3] "BaldEagle-BirdNet-EsqLagoon-2022-01-04.wav"
## [4] "BaldEagle-BirdNet-EsqLagoon-2022-02-03-1504-1.wav"
## [5] "DownyWoodpecker-GorgeHarriet-2021-04-1219.wav"
## [6] "DSCN4571-SeymourHill-WhiteCrownedSparrowSong.wav"
## [7] "DSCN5017-esqlagoon-birdsong-White-crownedSparrow.wav"
## [8] "DSCN6126-4-SongSparrow-HarrietSt.wav"
## [9] "DSCN7446.MP4-BaldEagle-EsquimaltLagoon-2021-06-03.wav"
## [10] "DSCN7583-Robin-Singing-FromRooftop.wav"
## [11] "Golden-crowned Sparrow.wav"
## [12] "Golden-crownedSparrow-GorgeHarriet-2021-04-06-152652.wav"
## [13] "PacificWren-BeaconHillPark-2021-03-31.wav"
## [14] "PacificWren-BowkerCreek-2021-09-23.wav"
## [15] "PacificWren-Goldstream-2021-04-08-142748.wav"
## [16] "Ruby-crownedKinglet-UVic-2021-04-08-101007.wav"
## [17] "White-crownedSparrow-GorgeHarriet-2021-04-17-1357.wav"
tuneReagle_wav_2021_06_04 <- readWave("./recordings/2021-06-04-Eagle-EsquimaltLagoon-DSCN7446.MP4.wav")to see info
eagle_wav_2021_06_04##
## Wave Object
## Number of Samples: 798208
## Duration (seconds): 16.63
## Samplingrate (Hertz): 48000
## Channels (Mono/Stereo): Stereo
## PCM (integer format): FALSE
## Bit (8/16/24/32/64): 32
using seewave
duration(eagle_wav_2021_06_04)## [1] 16.62933
using seewave
oscillo(eagle_wav_2021_06_04)using seewave
oscillo(eagle_wav_2021_06_04, from = 0, to = 2)oscillo(eagle_wav_2021_06_04, from = 0.1, to = 0.2)using seewave
spectro_eagle_wav_2021_06_04 <- spectro(eagle_wav_2021_06_04)spectro_eagle_wav_2021_06_04_zoom <- spectro(eagle_wav_2021_06_04, flim=c(0,6)) # zoom in frequencyspectro_eagle_wav_2021_06_04_osc <- spectro(eagle_wav_2021_06_04, osc = TRUE)spectro_eagle_wav_2021_06_04_zoom_osc <- spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6)) # zoom in frequency# spectro(eagle_wav_2021_06_04) # Registered S3 method overwritten by 'htmlwidgets'Palettes available: reverse.gray.colors.1, reverse.gray.colors.2, reverse.heat.colors, reverse.terrain.colors, reverse.topo.colors, reverse.cm.colors heat.colors, terrain.colors, topo.colors, cm.colors
spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6))spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = reverse.terrain.colors)spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = terrain.colors) # I like this one bestspectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = reverse.gray.colors.1)spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = reverse.gray.colors.2)spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = reverse.heat.colors)spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = heat.colors)spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = reverse.topo.colors)spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = topo.colors)spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = reverse.cm.colors)spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = reverse.cm.colors, colwave="orchid1")spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = cm.colors, colwave="orchid1")spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = temp.colors) # I like this one # Save image
jpeg(file = "./output/eagle_wav_2021_06_04_spector.jpeg")
spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = terrain.colors, colbg = "black", colgrid="white", colwave="white", colaxis="white", collab="white") # I like this best
dev.off## function (which = dev.cur())
## {
## if (which == 1)
## stop("cannot shut down device 1 (the null device)")
## .External(C_devoff, as.integer(which))
## dev.cur()
## }
## <bytecode: 0x7fc5ea05e040>
## <environment: namespace:grDevices>
png(file="./output/eagle_wav_2021_06_04_spector.png")
spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = terrain.colors, colbg = "black", colgrid="white", colwave="white", colaxis="white", collab="white") # I like this best
dev.off## function (which = dev.cur())
## {
## if (which == 1)
## stop("cannot shut down device 1 (the null device)")
## .External(C_devoff, as.integer(which))
## dev.cur()
## }
## <bytecode: 0x7fc5ea05e040>
## <environment: namespace:grDevices>
tiff(file="./output/eagle_wav_2021_06_04_spector.tiff", units="in", width=8, height=8, res=600)
spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = terrain.colors, colbg = "black", colgrid="white", colwave="white", colaxis="white", collab="white") # I like this best
dev.off## function (which = dev.cur())
## {
## if (which == 1)
## stop("cannot shut down device 1 (the null device)")
## .External(C_devoff, as.integer(which))
## dev.cur()
## }
## <bytecode: 0x7fc5ea05e040>
## <environment: namespace:grDevices>
spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6))spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = terrain.colors)
spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = terrain.colors, colbg = "black")spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = terrain.colors, colbg = "black", colwav = "yellow")spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = terrain.colors, colbg = "black", colwav = "green")spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = terrain.colors, colbg = "black", colwav = "palegreen")spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = terrain.colors, colbg = "black", colwav = "lightgreen")spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = terrain.colors, colbg = "black", colwav = "springgreen")spectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = terrain.colors, colbg = "black", colwav = "limegreen") # I like this bestspectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0,6), palette = terrain.colors, colbg = "black", colgrid="white", colwave="white", colaxis="white", collab="white") # I like this bestspectro(eagle_wav_2021_06_04, osc = TRUE, flim=c(0.5,6), palette = terrain.colors, colbg = "black", colgrid="white", colwave="limegreen", colaxis="white", collab="white") # I like this best# library(ggplot2)
## first layer
# v <- ggspectro(eagle_wav_2021_06_04, ovlp = 50)
v <- ggspectro(eagle_wav_2021_06_04)
## using geom_tile ##
v + geom_tile(aes(fill = amplitude)) + ylim(0, 6)## Warning: Removed 297769 rows containing missing values (geom_tile).
# black and white theme background
v + geom_tile(aes(fill = amplitude)) +
ylim(0, 6) +
scale_fill_gradientn(name="Amplitude\n(dB)\n", limits=c(-30,0),
na.value="transparent", colours = spectro.colors(30)) +
theme_bw()## Scale for 'fill' is already present. Adding another scale for 'fill', which
## will replace the existing scale.
## Warning: Removed 297769 rows containing missing values (geom_tile).
v + geom_tile(aes(fill = amplitude)) +
ylim(0, 6) +
scale_fill_gradientn(name="Amplitude\n(dB)\n", limits=c(-30,0),
na.value="transparent", colours = spectro.colors(30)) +
theme(plot.background = element_rect(fill = 'white', colour = 'red'),
panel.background = element_rect(fill = 'black', colour = 'red'))## Scale for 'fill' is already present. Adding another scale for 'fill', which
## will replace the existing scale.
## Warning: Removed 297769 rows containing missing values (geom_tile).
when trying to use install.packages() message >> is not available (for R version 4.0.2)
load using devtools::install_github("https://github.com/DenaJGibbon/behaviouR") behaviouR::Spectrogram(sound.file = “./recordings/2021-06-04-Eagle-EsquimaltLagoon-DSCN7446.MP4.wav”)
SpectrogramSingle(sound.file = "./recordings/2021-06-04-Eagle-EsquimaltLagoon-DSCN7446.MP4.wav")## NULL
SpectrogramSingle(sound.file = "./recordings/2021-06-04-Eagle-EsquimaltLagoon-DSCN7446.MP4.wav", min.freq = 0,
max.freq = 6000)## NULL
SpectrogramSingle(sound.file = "./recordings/2021-06-04-Eagle-EsquimaltLagoon-DSCN7446.MP4.wav", min.freq = 0,
max.freq = 6000, Colors = "Colors")## NULL
par(mfrow = c(2,2))
SpectrogramFunction(input.dir = "recordings", min.freq = 100, max.freq = 10000)## NULL
## NULL
## NULL
## NULL
## NULL
## NULL
## NULL
## NULL
## NULL
## NULL
## NULL
## NULL
## NULL
## NULL
## NULL
## NULL
## NULL
savewav(eagle_wav_2021_06_04, filename = "./output/eagle_wav_2021_06_04.wav")
# unlink("./output/eagle_wav_2021_06_04.wav") # this removes saved file ??
#savewav(eagle_wav_2021_06_04, filename = "./output/eagle_wav_2021_06_04-rescale.wav", rescale = c(-10000, 10000)) # leaves no sound ???
#unlink("./output/eagle_wav_2021_06_04-rescale.wav") # this removes saved file ??tuneR# playlist("./recordings/")# player <- setWavPlayer("/Applications/VLC")DON“T USE QUICKTIME >>> locks up R ,”/Applications/‘QuickTime Player.app’/Contents/MacOS/‘QuickTime Player’"
# play("./recordings/2021-06-04-Eagle-EsquimaltLagoon-DSCN7446.MP4.wav")not tested / working yet
#recordings <- get(load(url()))